FOPEN

#include <stdio.h>
FILE *fopen(pathname, type);
char *pathname;              path-имя файла.
char *type;                  разрешенный тип доступа.

Описание.
Функция fopen открывает файл, определяемый path -именем. Символы в строке type определяют тип доступа, требуемый для файла, следующим образом.

                
            РЕЖИМ                   ОПИСАНИЕ
                                                            
            "r"          открыть файл для чтения.(Этот файл должен
                         существовать).
                                                            
            "w"          открыть пустой файл для записи; если этот
                         файл  ранее  существовал,  его содержимое
                         уничтожается.
                         
            "a"          открыть файл для  записи  (добавления)  в
                         конец. Если данного файла нет, то вначале
                         он создается.
                         
            "r+"         открыть файл одновременно  для  чтения  и
                         записи. Файл должен существовать.
                         
            "w+"         открыть  пустой файл для чтения и записи.
                         Если этот  файл  ранее  существовал,  его
                         содержимое уничтожается.
                         
            "a+"         открыть  файл  для  чтения и  добавления.
                         Если файла нет, вначале он создается.
   

Замечание!
Нужно внимательно применять режимы "w", "w+", так как они могут уничтожить существующие файлы.
Если файл открыт при помощи типа "a" или "a+", все операции записи выполняются в конец файла. При использовании функций fseek или rewind возможно перепозиционирование указателя на файл; несмотря на это, указатель на файл перед выполнением любых операций записи всегда возвращается в конец файла. Таким образом, существующие данные не будут перезаписаны. При использовании типов "r+', "w+", "a+" допускается одновременно чтение и запись. (Говорится, что файл открывается для обновления). Поэтому, при переключении чтения на запись и наоборот нужно использовать функции fseek или rewind . Для функции fseek (при необходимости) может быть точно определена текущая позиция.
Дополнительно к значениям, описанным выше, может быть добавлен в строке type один из следующих символов, чтобы специфицировать способ преобразования символа новой строки.

            Символ               Значение
            
              t          открыть   в   текстовом   (преобразующем)
                         режиме;  при  вводе  комбинация  "Возврат
                         каретки      -      перевод       строки"
                         преобразовывается к единственному символу
                         "перевода  строки".  При  выводе   символ
                         перевода   строки   преобразовывается   в
                         комбинацию ВК-ПС.
                         
              b          открыть   в   двоичном  (непреобразующем)
                         режиме; выше описанные преобразования  не
                         осуществляются.

Если t или b в строке type не задается, режим преобразования определяется переменной _fmode и режимом, устанавливаемым по умолчанию.

Возвращаемое значение.
Функция fopen возвращает указатель на открытый файл. Значение указателя NULL свидетельствует об ошибке.

Пример:

            
#include <stdio.h>
main (argc, argv)
int argc;
char *argv[];
{
               FILE *stream;
               /*  применение  fopen  позволяет открыть файл, имя которого
         хранится в указателе argv[argc-1]; если это не удается, программа
         распечатывает сообщение об ошибке */
               if ((stream= fopen(argv[argc-1]), "r"))==NULL)
                  { fprintf (stderr, "%s не может открыть файл %s\n",
                             argv[0], argv[argc-1]);
                   exit(1);
}
               /* Замечание! Имя программы хранится в argv[0]  только  для
         версий  MS  DOS  3.0  и последующих; в предыдущих версиях MS DOS,
         argv[0] содержится в строке "Си" */
Hosted by uCoz